雖然現在介紹 CTF 的文章已經非常多了,但避免有讀者只看過 <親愛的,熱愛的> 導致對 CTF 有些錯誤的幻想,因此還是先在第一天簡介一下什麼是 CTF,也順便以我自己這些年參賽的觀點補充一下對 CTF 的感想 (已經過了黃金年齡 QQ)
CTF,全名為 Capture The Flag,名稱源自於模擬戰爭遊戲中的搶旗模式,現今主要指一種模擬入侵與防禦的遊戲,參賽隊伍必須以入侵、分析封包、破解密碼等各種手段獲得 flag,並提交至公正第三方以獲得分數,flag 的形式通常會是一個 printable 的字串,可能會是一個有意義的句子 (通常跟題目本身有關係),也可能單純只是一串 hash,在現實世界中被取得 flag 等同於被偷走機密資料 (密碼或 private key)。
CTF 的模式主要分為三種,分別是 Jeopardy、Attack & Defense、King of the Hill,三者的題目類型和規則略有不同,但皆以獲得 flag 為主要目的;透過 CTF 可以在遊戲中學習資訊安全相關知識,避免真實攻擊別人時造成危害及觸犯法律,達到寓教於樂的目的。
doublethink
為例,是比哪個隊伍寫的 shellcode 可以跑在比較多的平台,最多的隊伍獲得 10 分,其次依序獲得 5、3、2、1 分,第五名之後的隊伍沒有分數先說結論,這題的 flag 就是 hack the planet
,在很多 CTF 比賽都出過這題,最早應該是源自於 DEFCON CTF,印象中以前的 HITCON wargame 也有出過 XD
CTF 比賽通常會有一題打卡題,用來區分哪些註冊的隊伍是真的有在看比賽,打卡題沒有什麼技術含量,只要猜到主辦方的巧思就可以知道或找到 flag 在哪,而 hack the planet
是資安圈一個耳熟能詳的 slogan,因此經常被拿來作為打卡題的題目,有經驗的隊伍一看就知道答案,而初次參加的隊伍,也有機會透過 google 搜尋到答案
主辦方會利用打卡題來發揮一些創意,比如說去年 HITCON CTF 2018,flag 其實就放在題目敘述上,只是將字體調到非常小沒辦法直接看見,字體會隨著解題人數而慢慢變大,所以越後面的隊伍越容易過打卡題 XD